package day14_io.demo07_ObjectOutputStream;

import java.io.*;

// 对象序列化流:ObjectOutputStream
//ObjectOutputStream将Java对象的原始数据类型和图形写入OutputStream:可以使用ObjectInputStream读取（重构）对象。 可以通过使用流的文件来实现对象的持久存储。 如果流是网络套接字流，则可以在另一个主机上或另一个进程中重构对象。
//创建对象:
//ObjectOutputStream(OutputStream out) 创建一个写入指定OutputStream的ObjectOutputStream
//序列化对象的方法:
//void writeObject(Object obj):指定的对象写入ObjectOutputStream
//注意:
//一个对象想要实现序列化，该对象必须实现Serializable接口
//Serializable是一个标识接口，实现该接口，不需要重写任何方法

public class Test  {
    public static void main(String[] args) throws Exception {
        Student zs = new Student("张三", 20);
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\csw\\Demo\\b\\xd.txt"));
        oos.writeObject(zs);
        oos.close();

        //反序列化
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\csw\\Demo\\b\\xd.txt"));
        Object o = ois.readObject();
        Student student=(Student) o;
        System.out.println(student.getName());
        System.out.println(student.getAge());
        ois.close();
    }
}
